package mabinogi;

import java.io.*;

public class Kaizou {
	
	private static final int kaisu = 1000;//チェックする最大回数
	private static final double limit = 0.00001;//チェック時にこの確率を下回るようなら終了
	
	/**改造石の期待値計算
	 * 0段階目から6段階目まで存在する
	 * 0段階目から1段階目は確実に成功
	 * それ以降の段階では0.5の確率で失敗、失敗したら一段階下がる
	 * 5段階目で失敗した場合は破壊される
	 * TODO 6段階目の表記をどうするか？
	 * @param value　試行回数
	 */
	private static void  kakuritu(int value){
		int now = 1;//現在の試行回数
		double[] check = new double[value+1];//その時点で0～valueの段階に存在している確率
		double[] ans = new double[kaisu];//各段階におけるvalueの段階で終了する確率
		double breaken = 0.0;//破壊される確率
		check[0] = 1.0;
		//0→1は確実に成功1から5までは0.5で成功失敗したら戻る5→6は0.5で成功失敗したら消える
		while(true){//数値計算
			double[] checkc = check.clone();//前回のcheck
			for(int i=0;i<value+1;i++){//checkの中身を今回のものへ
				check[i]=0.0;//それぞれの確率を一旦0へ
				if(i==1)check[i]+=checkc[i-1];//1段階目は0段階目から確実に成功
				if(i>=2)check[i]+=checkc[i-1]*0.5;//2段階目以降は下の段階から0.5の確率で成功
				if(!(i==4 || i+1 >= value))check[i]+=checkc[i+1]*0.5;
				//5段階目及び成功した段階の前の回以外なら上の段階から0.5の確率で失敗
				
				if(value>=6){
					breaken+=checkc[5]*0.5;
				}
				//6段階目に挑戦する場合5段階目で0.5の確率で失敗
			}
			ans[now]=check[value];//今回の答えを入力
			if((check[value]>0 && check[value]<limit) || now >= kaisu-1)break;//終了条件の確認
			now++;//nowの回数増加
		}
		double exc = 0.0;
		for(int i=1;i<now;i++){
			//System.out.println(i+"回で終了する確率は"+ans[i]);
			exc += ans[i] * i;
		}
		//System.out.println("壊れる確率は"+breaken);
		System.out.println("期待値は石"+exc+"個");
	}
	
	public static void main(String[] args){
		System.out.println("段階を入力してください");
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		try{
			String line = br.readLine();
			int value = Integer.parseInt(line);
			if(value < 1 || value > 6){
				System.out.println("1～6までの半角数字を入力してください");
			}else {
				System.out.println(line+"段階まで改造するために必要な改造石は");
				kakuritu(value);
			}
		}catch(IOException e){
			System.out.println(e);
		}catch(NumberFormatException e){
			System.out.println("1～6までの半角数字を入力してください");
		}
	}
}
